package cn.wolfcode.service;

import cn.wolfcode.domain.SeckillProduct;
import cn.wolfcode.domain.SeckillProductVo;

import java.util.List;


public interface ISeckillProductService {
    /**
     * 根据场次查询Mysql秒杀商品信息
     * @param type
     * @return
     */
    List<SeckillProductVo> listByType(int type);

    /**
     * 查询单个秒杀商品信息
     * @param type
     * @param seckillId
     * @return
     */
    SeckillProductVo find(int type, Long seckillId);

    /**
     * 根据场次查询Redis秒杀商品信息
     * @param time
     * @return
     */
    List<SeckillProductVo> queryByTime(int time);

    /**
     * 真实库存减1
     * @param seckillId
     */
    void decrStockCount(Long seckillId);

    /**
     * 回补redis中的库存
     * @param time
     * @param seckillId
     */
    void rollbackRedisStock(Integer time, Long seckillId);

    /**
     * 回补真实库存
     * @param seckillId
     */
    void incrStock(Long seckillId);
}
